Cases that require a dummy read between two input readings:

1. Reading a character on a separate input line if the character read follows any word or number reading by:  next( ), nextInt( ), nextFloat( ), or nextDouble( )
2. Reading a character on a different input line if the character read follows a character read by  System.in.read( )
3. Reading a string on a separate input line by nextLine( ) if the string read follows any word or number reading by:  next( ), nextInt( ), nextFloat( ), or nextDouble( )
4. Reading a string on a different input line by nextLine( )  if the string read follows a character read by  System.in.read( )  or by  next( ).charAt(0)

Reasons:
   1.  next( ), nextInt( ), nextFloat( ), nextDouble( ) and System.in.read( )     leave \n  or \r\n in the input buffer after they read an input
   2. nextLine( ) does not skip leading white space, if it encounters ony the new-line character \n in the input buffer it returns an empty string: ""